#!/bin/bash
arrayZ=( one two three four five five)

echo

# 提取尾部的子串
echo ${arrayZ[@]:0}

# 在第一个元素后面的所有元素
echo ${arrayZ[@]:1}

# 只提取element【0】后面两个元素
echo ${arrayZ[@]:1:2}

echo "----------------"

# 子串删除
# 从字符串的前部删除最短的匹配
echo ${arrayZ[@]#f*r}

# 字符串尾部的最短匹配
echo ${arrayZ[@]%h*e}

# 字符串尾部的最长匹配
echo ${arrayZ[@]%%t*e}

# 第一个匹配的子串会被替换
echo ${arrayZ[@]/fiv/XYZ}

# 删除所有的匹配子串
# 没有指定替代字串意味着删除
echo ${arrayZ[@]//fi/}

# 替换最前部出现的字串
echo ${arrayZ[@]/#fi/XY}

# 替换最后部出现的字串
echo ${arrayZ[@]/%ve/ZZ}

echo ${arrayZ[@]/%o/XX}

echo "------------------"

newstr() {
  echo -n "!!!"
}

echo ${arrayZ[@]/%e/$(newstr)}
echo ${arrayZ[@]//*/$(newstr optional_arguments)}

echo

exit 0